package cn.com.surker.production.service;

import cn.com.surker.system.entity.DataSourceInfo;
import com.alibaba.fastjson.JSONObject;

import java.util.List;
import java.util.Map;

/**
 * @Author lucky
 * @create 2021年05月13 16:18
 * @desc 生产信息管理类
 */
public interface IVolumeService {


    /**
     * 查询看板数据
     * @param ds
     * @return
     */
	Map<String, Object> queryBoardData(Long dsId);

    /**
     * 方量查询
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
	Map<String, Object> queryVolume(Long dsId, String startTime, String endTime);


    /**
     * 根据强度等级方量查询
     * @param ds 数据源
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
	List<Map<String, Object>> queryVolumeStrength(Long dsId, String startTime, String endTime);

    /**
     * 方量图表查询
     * @param ds 数据源
     * @param orgId 部门ID
     * @param startTime 开始时间
     * @param endTime 结束时间
     * @return
     */
	JSONObject queryVolumeChart(DataSourceInfo ds, Long orgId, String startTime, String endTime);

    /**
     * 查询集团版方量查询
     * @return
     */
    List<Map<String, Object>> queryGroupVolume();

    /**
     * 多线程执行统计集团版强度等级数据
     */
    void threadGroupStrength();


    /**
     * 多线程执统计集团版数据
     */
    void threadGroupVolume();

	/**
	 * 获取方量排名靠前的客户数据
	 * @return
	 */
	List<Map<String, Object>> forwardClient(String startTime, String endTime);

	/**
	 * 获取方量排名靠前的标号数据
	 * @return
	 */
	List<Map<String, Object>> forwardStrengthLevel(String startTime, String endTime);

	/**
	 *获取方量排名靠前的合同数据
	 * @return
	 */
	List<Map<String, Object>> forwardContract(String startTime, String endTime);

	/**
	 * 查询合同签收方量
	 * @param ds        		数据源
	 * @param conId				合同id
	 * @param startTime			起始时间
	 * @param endTime			截止时间
	 * @return
	 */
	List<Map<String, Object>> queryAcceptVolume(DataSourceInfo ds, Long conId, String startTime, String endTime);
}
